home *** CD-ROM | disk | FTP | other *** search
- This Archive contains the RISC-OS executables for Edinburgh SML
-
- WARNING: SML is not in the public domain. To use this software
- legitimately you must first complete the license agreement.
- This may be found in the file ORIGREADME.
-
- INTRODUCTION
- ------------
-
- SML is a functional programming language with very powerful and
- flexible date-typing mechanism, abstract data-types, and imperative
- features to make ``real-world'' programming possible.
-
- The ability to do incremental compilation, and the powrful
- type-checking make it excellent for rapid prototyping.
- With the native compilers available for larger machines,
- industrial scale applications can be developed with an
- efficiency comparable to fancy Smalltalk or LISP systems etc.
- Beats the pants off hacking away in low-level languages like
- C or Pascal.
-
- The Edinburgh implementation compiles to an efficient abstract
- machine which allows it to run well in relatively small machines
- (2M is plenty, small programs will run in 1M) at the cost of
- some loss of performance. Speed is comparable with fast interpreted
- LISPs and rather better than Prolog.
-
- CONTENTS
- --------
-
- ml_1 - Source for UNIX manual page for SML
- LIBINFO - Doc. of Library functions loaded as standard on top
- of the SML core language.
- ORIGREADME - Original README with UNIX distribution.
- BOOTML - Simple script to build an initial SML saved=state.
- config - ML commands used by BOOTML to build the initial saved-state
- fam - SML Abstract machine interpreter
- ml,tml - Example Obey scripts for running SML. tml uses less memory.
- smlcore_bk - Distribution format fam code for SML system saved-state. Loaded
- by BOOTML to build a proper local format saved-state.
- core_array - Source for optional SML array package.
- core_barra - "
- compstuff - Directory containing stuff needed if you want to re-compile
- SML sometime.
-
- NOTE: If you have obtained this archive from the LFCS info-server you
- will find that the last three files are missing. They are contained
- (under similar but somewhat longer names) in the edml-CompilerAndLib
- archive.
-
- Even if you have copies of these three files it may be worth checking
- if more up to date versions are available from the LFCS info-server.
- E-mail to info-server@uk.ac.ed.lfcs if on JANET,
- info-server@lfcs.ed.ac.uk if on the Internet (etc).
-
-
- HOW TO BUILD A RUNNABLE SML SYSTEM
- ----------------------------------
-
- (1) If file types are screwy set them sensibly.
-
-
- ml_1 - Text
- LIBINFO - Text
- UNIXREADME - Text
- BOOTML - Obey
- config - Text
- fam - Application
- ml,tml - Obey
- smlcore_bk - Data
- core_array - Text
- core_barra - Text
-
- Run BOOTML.
-
- This builds a saved-state smlcore_ex containing the default
- SML system.
-
- Move the files fam, ml (and/or tml) and smlcore_ex to wherever you keep
- your executables. E.g. $.Bin, $.Library, $.Library.bin or
- whatever.
-
- ENJOY!
-
- Edit tml or ml if you want to change the amount of memory SML
- claims from the operating system.
-
- The system only supports the core langauge - not the fancy module system -
- Alas.
-
- If you want to use arrays you need to build a saved
- state with some extra stuff loaded.
- Edit ``config'' to load core_array and core_barra before
- the exportML that dumps the resulting state to smlcore_ex.
-
- Recompiling SML
- ---------------
-
- Read the README in the compstuff directory.
-
- Please feed back any bug fixes (etc) either to me or to the
- Foundations lab.
-
- BUGS
- ----
-
- Currently, due to what appear to be bugs the Acorn's signal
- interface in ANSI-C, the handling of Floating Point exceptions
- like division by zero or overflow is somwhat erratic. Theoretically,
- SML ought to raise Qout, Prod (or whatever) exceptions that can
- then be handled by user-code if desired. In practice, ANSI-C
- seems to blithely ignore the FP exceptions so that SML
- ends up returning ``infinity'' or other not-number values
- rather than launching exceptions.
-
- The scary part of this is that if you accept this and just tell ANSI-C
- to ignore FP exceptions the C library seems to crash certain programs.
- This behaviour has not so far been observed for SML but ...
-
- The Motto: for the moment avoid writing SML that raises and traps
- FP exceptions.
-
- Please send any queries to
-
- JANET: as@uk.ac.ed.aipna
- INTERNET: as@aipna.ed.ac.uk
- UUCP: ...!ukc!aipna!as
-
- Andrew Stevens
- Deptartment of Artificial Intelligence
- Edinburgh University
- 80 South Bridge
- EDINBURGH
-
-